

WinIPSJ

------
 TODO
------

E̃t@CIăhbOhbvivOt@CAEBhEjꍇɁA
GfBbg{bNXɂ̃t@CZbg
@- 쐬̏ꍇA߂ɑÎύXOAɑÎύX
@- Kp̏ꍇAgqIPSt@C𔻕ʂAIPSt@CɁAȊOKpt@C()
EɎOɕ\LɂċNׂꍇłALɂȂȂꍇ(Č@s)
Ewinips.cGetFileName()֐ŁAGetOpenFileName()֐̌ĂяoɐĂAOPENFILENAME\̂
nFileOffseto[ZbgȂ(0̂܂܂ł)ꍇAt@CJR_CAO
fBNgXVȂ(tpX̏ꍇ)
 ԂꂽtpXfBNg擾֐A𗘗pďfBNgXV
Ƃ@邪AႦ΁A(hCu)(fBNgA)(fBNgB)(t@C)
IA(MAX_PATH+1)̕obt@ł́A(hCu)(fBNgA)̓r܂ł
擾łȂꍇAfBNg(hCu)ZbgĂ܂B
EIPSpb`GUÍupb`t@Cvupb`Kpt@CvɕύXׂH
 patch́AIɎg邱ƂB
Egqips̃t@C̃t@CƂĎgpƂȂǂ̃G[u̃tpXɂȂ܂Bv
ŁAG[Ȃ̂AǂΉł̂ɂB
Epb`t@CƂăTCY4GBȏ̃t@Cw肷ƁARs[ɎԂAWinIPS
ȂȂ悤ɂ݂A΂炭Ԃo߂ĂG[łƃbZ[W{bNX\
(\ȃTCY4GBɋ߂傫ȃt@Cpb`t@CɎw肵Ăl̏Ǐ󂪔)B
 IPSt@CŕύXł͈͂̓ItZbg̍ől+TCY̍ől(0xFFFFFF + 0xFFFF)̖16MBł
̂ŁATCYMKoCgɂȂt@CɃpb`Kp邱Ƃ͂قƂǂȂƍlB

----------
 XV
----------
v0.71
Eips.cips_Create()֐SʓIɏB
Eips.cips_Create()֐Truncatȅo͂T|[gB
Eips.cIPS*Write()֐̖OIPSWrite*()ɕύXB
Eips.cg_baIPSEOFz̃oCgI[_[tɂAips_Patch()֐EOF̌oɂ́AVɒǉ
IPS_OFFSET_EOF萔gp悤ɕύXB
Eips.cIPSWriteHeader()֐IPSWriteEOF()֐ǂB
Eips.cips_Patch()֐̏݃ItZbg̃`FbN폜B
Eips.cips_Patch()֐ŁAItZbgATCYA񐔂̓ǂݍݏύXB
Eips.cips_Patch()֐ŁAf[^̓ǂݍݗpobt@֐̐擪Ń`N̍őTCYmۂ
悤ɕύXB
Eips.cips_Patch()֐EM`Nɂf[^̏ݏŁAEM`Nɂ鏑݃oCg
ɑIPSt@C(Ⴆ΁AύXÕt@CoCgAύX̃t@C16MBŁAׂēoCgl
IPSt@C)ł̎sx̉P̂߁A֐̐擪ŊmۂTCY0xFFFF̃obt@ɑ΂memset()sA
xWriteFile()֐ŏނ悤ɕύXB
Ewinips.cŁAGfBbgRg[̕ŜIԂɂāAGfBbgRg[̃Lbg
I[Ɉړ邱ƂŁȀI[GfBbgRg[ɕ\}N`Aȉ̏ꍇ
t@CGfBbgRg[ɕ\悤ɂB
 (a) t@CEBhEɃhbOhbvƂ(WM_DROPFILES)
 (b) t@CJ_CAOŃt@CIƂ(WM_COMMANDIDM_FILE_BROWSE1, IDM_FILE_BROWSE2)
 (c) R}hCƂIPSt@Cw肳ꂽƂ(WM_INITDIALOG)
܂A(b)(c)̏ꍇɁAL[{[h̃tH[JXΉGfBbgRg[Ɉړ鏈ǉB
Emyfunc.cAllocateFileMemory()֐ŁATCY0̃t@Cw肳ꂽꍇA[}bvgt@C
쐬⃁[Ԃւ̃}bvs킸Ɋ֐𐬌ŕԂ悤ɕύXB
Emyfunc.cAllocateFileMemory()֐ŁAt@CTCY0xFFFFFFFF𒴂ꍇɃG[Ԃ悤ɕύXB
v0.70
Eips.cips_Patch()֐ŁATruncatẽT|[ĝ߁At@C̓o͊֐Win32̂̂ɒuB
Eips.cips_Patch()֐ŁAIPSt@CTruncateT|[gBTruncate܂IPSt@C
ƁA"EOF܂B"ƂG[ĂAꂪȂB
Eips.cips_IsIPSFile()֐̃t@C̓o͊֐Win32̂̂ɒuB
Eips.cips_Patch()֐ŁAIȃmۊ֐C֐malloc()free()Win32֐HeapAlloc()
HeapFree()ɕύXB
Eips.cips_Patch()֐ŁAIPSt@C̃ItZbg`FbN鏈ǉB̃t@C
f[^𕡐̃`NɕĂIPSt@CT|[gĂB
Eips.cips_Patch()֐ŁAt@C݂̏`FbN鏈ǉB
Eips.cips_Patch()֐ŁAIPSt@C⌳̃t@C̃TCY0xFFFFFFFF(4G)oCg𒴂ꍇA
G[ƂĈ悤ɕύXB
ERgꂽR[ḧꕔ폜B
E\[Xt@C({Ep)̃o[W_CAO̕{^폜B
v0.69
Ewinips.cGetFileName()֐ŁAGetOpenFileName()ԂtpXNULLI[ŕ
ȂꍇɑΏ邽߂ɁAobt@̏I[NULLI[Zbg鏈ǉB
Ewinips.cGetFileName()֐ŁAKv̂Ȃ[Jϐ폜B
Ewinips.cGetFileName()֐ŁAOPENFILENAME\̂nMaxFileo[NULLI[
TCYw肷悤ɕύXB
Ewinips.c̃t@CJR_CAȌfBNgێobt@AGetFileName()֐
ntpXێobt@Aipslib.cIPSLIBPARAMS\̂̃tpXێ郁o[
NULLI[ێ邽߂1̃TCỸobt@ǉB
Ewinips.cŃt@CJR_CAOŃt@Cw肵ꍇɁAMAX_PATH̃tpX
wł悤ɕύXB
Eipslib.cCreateIPSFile()֐IPSPatch()֐̍ŌŁALOG_BUFFER_SIZE萔(256oCg)
ĂꂽszLogϐgpĂA폜AszMsgϐɎgp悤ɕύXB
Emyfunc.cGetFileExtension()֐ŁAgqɃ}`oCg܂܂Ã}`oCg
.1oCg܂܂ĂĂAł悤ɕύXB
Ewinips.c̃R}hCł̃tpX̎wMAX_PATHŕێłtpX܂ŉ\ɂA
tpX̃}`oCg"1oCg܂ޕ܂܂ĂĂł悤ɕύXB
E֐ŁAExtensionExtentionƊԈႦĂ̂CB
Eipslib.cIPSPatch()֐CreateIPSFile֐ŁÃt@C̕ی̂߂ɁAw肳ꂽ
tpXƂꂩ쐬tpX̎OłȂ`FbN鏈ǉB
Emyfunc.cGetFileNameFromFullPath()֐MakeFullPathName()֐͎gpĂȂ̂ō폜B

--------------------
[X̃`FbN
--------------------
Eo[Wԍ
- winips.cVERSION_MAJOR萔VERSION_MINOR萔XV
- {Ɖp̓YteLXg

E쌠\̔N
- {Ɖp̃\[X̃o[W_CAO
- {Ɖp̓YteLXg

E[X
- {Ɖp̓YteLXg

EfBNg܂߂Ĉk

E{Ńt@CXg
- batch.txt
- guidelines.txt
- wi_delini.exe
- winips.exe
- winips.txt

EpŃt@CXg
- wi_delini.exe
- winips.exe
- winips.txt

EEBXXpCEFÃXL
